package com.vcc.data.entity;


import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Table;
import com.vcc.data.base.entity.BaseEntity;
import lombok.*;

import java.io.Serializable;
import java.util.Date;

/**
 * 用户
 */

@EqualsAndHashCode(callSuper = true)
@Data
@Getter
@Setter
@Table(value = "vcc_user")
@AllArgsConstructor
@NoArgsConstructor
public class User extends BaseEntity implements Serializable {

    /**
     * 账号
     */
    @Column(comment = "账号", value = "account")
    private String account;

    /**
     * 密码
     */
    @Column(comment = "密码", value = "password")
    private String password;

    /**
     * 密码
     */
    @Column(comment = "邮箱", value = "email")
    private String email;

    /**
     * 密码
     */
    @Column(comment = "支付密码", value = "pay_password")
    private String payPassword;

    /**
     * 用户名
     */
    @Column(comment = "用户名", value = "username")
    private String username;


    /**
     * 备注
     */

    @Column(comment = "备注", value = "remark")
    private String remark;

    /**
     * 状态   0 可用 1 禁用  2  管理员禁用 3  注销 4 待激活
     */
    @Column(comment = "状态", value = "status")
    private Integer status;

    /**
     * 所属上级
     */
    @Column(comment = "所属运营", value = "be_long_to_dealer")
    private Long beLongToDealer;


    @Column(comment = "所属上级", value = "parent_id")
    private Long parentId;

    /**
     * 经销商账号
     */
    @Column(comment = "经销商账号", value = "dealer_account",ignore = true)
    private String dealerAccount;

    /**
     * 经销商账号
     */
    @Column(comment = "上级账户", value = "parent_account", ignore = true)
    private String parentAccount;

    /**
     * 预留字段1
     */
    @Column(comment = "预留字段1", value = "expand_one")
    private String expandOne;

    /**
     * 预留字段2
     */
    @Column(comment = "预留字段2", value = "expand_two")
    private String expandTwo;

    /**
     * 预留字段3
     */
    @Column(comment = "预留字段3", value = "expand_three")
    private String expandThree;

    /**
     * 是否绑定谷歌验证
     */
    @Column(comment = "是否绑定谷歌验证", value = "has_bind_google")
    private Boolean hasBindGoogle;

    /**
     * 谷歌验证密钥
     */
    @Column(comment = "谷歌验证密钥", value = "google_secret")
    private String googleSecret;

    /**
     * 谷歌验证绑定时间
     */
    @Column(comment = "谷歌验证绑定时间", value = "bind_google_date")
    private Date bindGoogleDate;

    /**
     * 盐
     */
    @Column(comment = "盐", value = "salt")
    private String salt;


    /**
     * 邀请码
     */
    @Column(comment = "邀请码", value = "invitation_code")
    private String invitationCode;


    /**
     * 注册来源  client 客户端账号 system 后台账号
     */
    @Column(comment = "注册来源", value = "register_source")
    private String registerSource;

    /**
     * 注册次数
     */
    @Column(comment = "邀请注册人数", value = "register_count", ignore = true)
    private Integer registerCount;

    /**
     * 注册ID
     */
    @Column(comment = "注册ID", value = "register_id")
    private Long registerId;


    /**
     * 最后登录时间
     */
    @Column(comment = "管理员备注", value = "admin_remark")
    private String adminRemark;
}
